Nowadays, HTML (HyperText Markup Language) is a global standard language, which is copyright free and available for use by all developers, and further supported by all programming environments. The ability to offer links for navigation and its multimedia support capability (sound, pictures, animations, etc.) caused the world to adopt the HTML as the industry mainstream. Also, recently, the DHTML (Dynamic HTML) language was presented. DHTML is a collection of technologies used together to create interactive and animated Web sites by using a combination of a static markup language (such as HTML), a client-side scripting language (such as JavaScript™), a presentation definition language (Cascading Style Sheets, CSS), and a Document Object Model (programming interface). Thus, the DHTML language enabled better interactivity with the Internet users. The penetration of the Internet into all information driven walks of life and the fast spread of the Internet among users, along with the growing demands by the business and commercials sectors as a mean of communication with their users, brought about the need for more dynamic and heavier remote server/client oriented internet applications. This led to the introduction of ASP (Application Service Provider), PHP (Hypertext Preprocessor) and other web application languages/environments that presented new utilities, such as dynamically created pages that were static before. These new environments introduced the capability to expose and receive data from conventional HTML pages.
The demand for higher server-client performance of IT (Information Technology) Web oriented applications currently can not answer the growing needs for more sophisticated IT applications. In spite of the significant evolution of the internet that is becoming the major mediator in IT uses, the basic principals supporting these usages remained the same as a couple of decades ago. Nowadays, ASP.NET (Active Server Pages) and JSP (Java® Server Pages) offer better “server side” development environment. On the client side, HTML pages, containing scripts that call server-side pages, i.e. pages are fully reconstructed on each action on the sever side, resulting in slow and limited performances. Furthermore, using web applications, which are heavily script-dependent, has become the main practice of Web developers. The Web applications needs are becoming more and more resemble to the computer desktop needs. More features that have been only supported by desktop applications have become essential for Web applications. This demand came with a high price tag in terms of a bandwidth, i.e., web transportation resources. Client side scripts started to be more and more complex, making Web application hard to design and maintain. In addition, the performance problems of such applications are very common. It is easy to mess things up, as scripts offer no code access limitations, and poor object oriented programming concepts, if at all.
Also, the security issue remains one of the major problems of the current Web-oriented technologies, since the scripts run on a client browser (e.g., Microsoft® Internet Explorer). The use of script languages, being embedded into the user's browser, has made Web applications to be exposed to malicious tampering, since pages that serve as data providers for Web applications are hard to protect. A large part of the data is processed by the browser at the user's side (and not at the server side), and therefore exposing more data than required.
Furthermore, the ASP.NET and JSP have become outdated since they are not able to cope well enough with current IT needs. Even though they introduced stronger programming possibilities, such as new infrastructural programming utilities, new modeling and reuse capabilities (reuse capabilities are the ability to create components once and use them later multiple times), still the basic concepts remain the same, reflecting the same problems described above (i.e., performance and user experience, security, complexity of development and maintenance). The page-based approach of these environments makes it a poor environment for developing Web application, since there is no server side support for opening windows or interacting between frames (since a lot of window management code should be written in client scripting languages distributing the business logics to a few languages and locations). There is limited development support for partial updating of the user interface, leaving the developer with the need to explicitly manage partial updating and deteriorating the development process productivity. In addition, the current IT systems bandwidth constrained and they are not able to support more sophisticated needs that require larger processing resources. This leads to valuable users' time waste. The sophisticated actions cause slow browser scripts perform, wherein each action is calling a different page that is being fully recreated by the server and fully rendered by the browser. Currently, the developer is the only one who decides what will be the content of the data transferred between the client side and the server side. This fact causes the data to be very inconsistent and informal, i.e., the data can contain presentation data, business data, and all sorts of security tokens and various other types. Furthermore, the data can be of any format e.g., plain text, XML or any other format. Several developers and moreover several projects can use several and very different protocols of data and formats sent and received to the server and returned from the server. A developer must learn many Internet languages, which requires considerable training, and therefore the qualified personnel are hard to find.
In desktop application development environments, the control positioning is divided into docking and anchoring. Docking is the ability to take a list of controls and give each of them one of the five docking behaviors (Left, Top, Right, Bottom, and Fill) and using these definitions to create the screen layout. Each control is independent, but is placed in relation to the other controls without overlapping. That way there's no need to update the positioning of all the controls when updating one. Anchoring is the ability to define virtual strings that are tied from a control edge's (one, some or all of them) to its container. When the control's container is resized, moved or both the distance between the anchored-to container's side panels and the anchored control's side panels will remain static on side panels which the control is anchored to. This can result in the control's resize when anchoring to opposite side panels (e.g., left+right and/or top+bottom).
The conventional web application development environments provide the programmer an object module (the output of an assembler or compiler, which is in the machine code of the target computer. Object modules must be linked with other modules to create the final executable program) representing HTML elements for building the page content. The page layout is done using three tools:                1. HTML tables (which can contain the text of the web and can be also used to layout any HTML elements.        2. Flow control styles such as CSS (cascading style sheets) layout definitions.        3. Absolute positioning which allows positioning any browser displayed element (i.e. Button, List etc.) by specifying the exact location of the element regardless of other displayed elements. This methodology is very difficult to use when developing a web site which should act as an application.        
All the above describes the complicated work environment of web application design. It also presents the drawbacks and the limitations of the usage of these applications.
In the closest prior art (Pub. No.: 2003/0200254 A1), the application tasks' are divided between the server and the client. A client using this application must install a service program (JAVA applet). It means that some processing tasks are done in the client side. That limits the user for installation authorized computers only and to specific operating system and web browser. It also makes it less adaptable for the operating system and web browser updates. Another disadvantage of the client side, having some of the application processing tasks, is in the communication method. Data packages, which probably contain significant information, must be sent from the client side to the server and vice versa. Such communication is far from being ideal in manners of data size (bandwidth) and time. It also holds security risks since significant information is available on the client side, which is connected to the global network.
The “Microsoft's “Remote Desktop Connection” is an application that enables using application on servers/computers through a data network. The application actually runs on server/computer and a user, using other computer/terminal connected to a network, can operate the application. The method used here is sending the screen as a bitmap of the application to the user/client. The client sends keyboard and mouse events back. The data sent from the server is the screen capture (bitmap) of the application on the server, reflecting the exact screen display generated on the server. In order to get a smooth picture on the user side, the bitmaps are sent from the server frequently. The data packages are big and the transmitting rate is high. This cause to mass activity on the network and consuming allot of network resources (bandwidth). This application requires both, the server and the client, to use the same operating system. The client side also required to install an applet to support the application.
The main purpose of the preset invention is to overcome all these drawbacks, both of the design and the usage of web applications, despite all the limitations. In other words, using the same circumstances of design complexity and web transportation resources, the present invention enables a relatively simple design method and system, and much more efficient and secure usage of IT-oriented server-based web applications.
It is an object of the present invention to disclose a system and method for providing IT-oriented server-based Web applications.
It is still another object of the present invention to provide a method and system that enables to program server-based Web applications similarly to programming desktop applications.
It is still another object of the present invention to provide a method and system wherein a unified object model handles all application needs such as handling a web application with multiple windows, managing the communication between the server and the browser, sending applications events (events queues) and getting back commands to update the UI (User Interface) when required.
It is still another object of the present invention to provide a method and system, which does not employ client scripting languages or any other web language such as JavaScript.
It is still another object of the present invention to provide a method and system, which the developer uses a single, organized and object oriented language such as C#, VB.NET or any other language that supports full object-oriented programming and compilation capabilities, eliminating the developer need for common web design languages knowledge.
It is a further object of the present invention to provide a method and system, in which all processing is done at the server side; the user's browser is used only to receive input commands and display output, accordingly.
It is still a further object of the present invention, to provide a method and system, in which the data transmission capacity is significantly reduced, compared to the prior art.
It is still a further object of the present invention, to provide a method and system, in which the significantly higher security level is achieved, compared to the prior art.
It is still a further object of the present invention, to provide a method and system, in which the design of a Web page (presented on a user's computer screen/display) is loaded only once, without the need to reload it again for updating the data presented on said Web page.
It is still a further object of the present invention to provide a method and system, in which the relatively low bandwidth and processing resources are used at the client side.
It is an object of the present invention to provide a method and system for providing developers of IT-oriented server-based Web application with a new developing environment that is compliant with the Microsoft® developing environment.
Other objects and advantages of the invention will become apparent as the description proceeds.